#ifndef SCRIPT_PLUGIN_H
#define SCRIPT_PLUGIN_H

#include "Prerequisites.h"

#include <OgrePlugin.h>
#include <OgreSceneManager.h>
#include <OgreCamera.h>
#include <OgreViewport.h>
#include <OgreString.h>

namespace ScriptPlug
{
    using namespace Ogre;

    class SCRIPT_PLUGIN_EXPORT IScriptPlugin : public Plugin
    {
    public:
        virtual ~IScriptPlugin() {}
        // tell the ScriptPlugin what the sceneManager is so that we can create scene objects via script
        virtual void Setup(SceneManager* sceneManager, Camera* camera, Viewport* viewport) = 0;
        virtual bool Execute(std::string scriptCode) = 0;
        virtual String Result() = 0;
        virtual String Error() = 0;

    protected:
        IScriptPlugin() {}
    };
}

#endif // SCRIPT_PLUGIN_H